import {
    Token
} from './utils/token'
import {
    Config
} from './utils/config'
const token = new Token()
App({
    /**
     * 小程序初始化
     */
    onLaunch() {
        let that = this
        token.verify() // 验证Token
        // that.showUpdateNotification() // 根据后台设置显示维护通知
        that.checkUpdate() // 检查是否有更新
    },

    /**
     * 根据后台设置显示维护通知
     */
    showUpdateNotification() {
        wx.request({
            url: Config.baseUrl + 'update',
            success: (res) => {
                let list = res.data.list
                // 前台显示并且没到维护开始时间才提示
                if (list.is_delete && res.data.code) {
                    if (!wx.getStorageSync('isConfirmReceive')) {
                        wx.showModal({
                            title: list.title,
                            content: list.content,
                            showCancel: false,
                            confirmText: '我知道了',
                            success: () => {
                                wx.setStorageSync('isConfirmReceive', true)
                            }
                        })
                    }
                    // 前台不显示
                } else {
                    wx.removeStorageSync('isConfirmReceive')
                }
            }
        })
    },

    /**
     * 检查是否有更新
     */
    checkUpdate() {
        if (wx.canIUse('getUpdateManager')) {
            const updateManager = wx.getUpdateManager()
            updateManager.onCheckForUpdate((res) => {
                console.log('hasUpdate:' + res.hasUpdate)
                // 请求完新版本信息的回调
                if (res.hasUpdate) {
                    updateManager.onUpdateReady(() => {
                        wx.showModal({
                            title: '更新提示',
                            showCancel: false,
                            content: '新版本已准备好，是否重新启动？',
                            success: (res) => {
                                if (res.confirm) {
                                    // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
                                    updateManager.applyUpdate()
                                }
                            }
                        })
                    })
                    updateManager.onUpdateFailed(() => {
                        // 新的版本下载失败
                        wx.showModal({
                            title: '更新提示',
                            showCancel: false,
                            content: '新版本已上线！请删除当前小程序，通过搜索检车e或链接二维码重新进入'
                        })
                    })
                }
            })
        }
    }
})